package com.qinghe.utils;

import com.qinghe.utils.common.DateUtil;
import com.qinghe.utils.common.JsonUtil;
import com.qinghe.utils.common.MD5Util;

/**
 * 工具集合支持类
 * 
 * @author longfei
 *
 */
public abstract class Utils {

	/** MD5工具类 */
	public static MD5Util MD5Util = new MD5Util();

	/** json工具类 */
	public static JsonUtil JsonUtil = new JsonUtil();

	/** date工具类 */
	public static DateUtil DateUtil = new DateUtil();

	/**
	 * 
	 * 生成有规则的标识，例如user001
	 * 
	 * @param max 最大的值 user001
	 * @param sign user001中的user
	 * @param idLength 001的长度
	 * @return
	 */
	public static String generate(String max, String sign, int idLength) {
		int i = 0;
		// 如果是第一次添加记录那么就是类似user000000001
		if (max == null || max.trim().equals("")) {
			max = "1";
			//for(; i < idLength-sign.length()-1; i++) {
			for(; i < idLength-1; i++) {
				max = "0" + max;
			}
			i = 0;
			return sign + max;
		//} else if(max != null && max.length() <= idLength) {
		} else if(max != null && max.length() <= idLength + sign.length()) {
			// 不是第一次的操作,并且记录的长度没有超过从配置文件中读取的长度
			//max = max.replaceAll(sign, "");
			max = max.replaceFirst(sign, "");
			Integer imax = Integer.parseInt(max) + 1;
			String returnnum = String.valueOf(imax);
			//int zero = idLength-sign.length()-returnnum.length();
			int zero = idLength-returnnum.length();
			for(; i < zero; i++) {
				returnnum = "0" + returnnum;
			}
			i = 0;
			return sign + returnnum;
		} else {
			// 不是第一次的操作,记录的长度超过了从配置文件中读取的长度
			idLength = max.length();
			//max = max.replaceAll(sign, "");
			max = max.replaceFirst(sign, "");
			Integer imax = Integer.parseInt(max) + 1;
			String returnnum = String.valueOf(imax);
			//int zero = idLength-sign.length()-returnnum.length();
			int zero = idLength-returnnum.length();
			for(; i < zero; i++) {
				returnnum = "0" + returnnum;
			}
			return sign + returnnum;
		}
	}

}
